<!-- tab 的 js 原生写法 -->

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            outline: 0;
            /* outline 不同浏览器可能轮廓不统一 表示得不一致 */
            /* ios android(系统) webkit(Google开源内核) chrome(浏览器商业)、360、夸克 */
        }

        a {
            text-decoration: none;
            color: inherit;
            /* 继承 父元素 */
        }

        .pj_tabbar {
            display: flex;
        }

        .pj_tabbar__item {
            flex: 1;
            height: 50px;
            border-bottom: 1px solid #ddd;
        }

        .pj_tabbar__item a {
            display: block;
            line-height: 50px;
            text-align: center;
        }

        .pj_tabbar__item a:first-child {
            border-right: 1px solid #ddd;
        }

        .pj_tabbar__item_on {
            background-color: pink;
            color: white;
        }
    </style>
</head>

<body>
    <div class="pj_tabbar">
        <div class="pj_tabbar__item pj_tabbar__item_on">
            <a href="#" data-type="basic">
                basic
            </a>
        </div>
        <div class="pj_tabbar__item">
            <a href="#" data-type="super">
                super
            </a>
        </div>
    </div>
    <div id="list"></div>
    <script>
        const list = document.getElementById('list');
        const links = document.querySelectorAll('.pj_tabbar__item a');
        // const tabTypes = {
        //     basic: 'basic',
        //     super: 'super',
        // }
        // java 等大型语言 tab切换时 为了可读性 写个tabTypes配置性对象常量
        // 所有tap都在这里，方便统一管理
        const tabTypes = {
            basic: Symbol(), // es6 里新的简单数据类型，独一无二的
            super: Symbol()
        }

        links.forEach(link => {
            link.addEventListener('click', function (event) {
                event.preventDefault();
                const type = event.target.dataset.type;
                const parent = this.parentNode;
                if (!parent.classList.contains('pj_tabbar__item_on')) {
                    document.querySelector('.pj_tabbar__item_on')
                        .classList.remove('pj_tabbar__item_on');
                    parent.classList.add('pj_tabbar__item_on');
                }
                if (type == tabTypes.basic) {
                    list.innerHTML = 'basic';
                }
                if (type == tabTypes.super) {
                    list.innerHTML = 'super';
                }
            });
        })
    </script>
</body>

</html>